<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 原型(原始数据模型)：构建数据变量的参考模型(模型中包含了该数据可以直接使用的属性和方法)
        // let obj={};
        // let obj2=Object.create(null);
        function Student(){}
        // let obj3=new Student();
        /*  
            原型链：js中任何一个数据定义都会参考一个固定数据模型进行描述，并且js中数据模型实际上一个构造函数，而js中的函数本身也是一种特殊数据，
            也有自己的参考模型，由此产生的链式模型结构被叫做原型链
            js中所有的原型最终都会指向于Object.prototype,而Object的原型指向于null 
        */
        // obj4--->Array.prototype--->Object.prototype--->null
        let obj4=Object.create(Array.prototype);
        // 变量 instanceof 构造函数
        // 1.判断变量值是否是某种数据类型
        // 2.判断变量的原型链上是否存在某个数据类型的构造函数
        console.log(obj4 instanceof Array);
        console.log(obj4 instanceof Object);


        function Person(){
            this.name="alice";
            this.age=20;
        }
        let p=new Person();
        console.log(p instanceof Person);
        console.log(p instanceof Object);
        console.log(p instanceof Array);

        
    </script>
</body>
</html>